带你认识 flask 的模板(3) 您所在的位置:网站首页 flask之模板html中调用python函数方法 带你认识 flask 的模板(3)

带你认识 flask 的模板(3)

2022-08-03 06:55| 来源: 网络整理| 查看: 265

本站最新发布   Python从入门到精通|Python基础教程 试听地址  https://www.xin3721.com/eschool/pythonxin3721/ 条件语句

在渲染过程中使用实际值替换占位符,只是Jinja2在模板文件中支持的诸多强大操作之一。模板也支持在{%...%}块内使用控制语句。 index.html模板的下一个版本添加了一个条件语句:

                        {% if title %} {{ title }} - Microblog {% else %} Welcome to Microblog! {% endif %} Hello, {{ user.username }}!

现在,模板变得聪明点儿了,如果视图函数忘记给渲染函数传入一个名为title的关键字参数,那么模板将显示一个默认的标题,而不是显示一个空的标题。你可以通过在视图函数的render_template()调用中去除title参数来试试这个条件语句是如何生效的。

循环

登录后的用户可能想要在主页上查看其他用户的最新动态,针对这个需求,我现在要做的是丰富这个应用来满足它。

我将会故技重施,使用模拟对象的把戏来创建一些模拟用户和动态:

                                  from flask import render_templatefrom app import [email protected]('/')@app.route('/index')def index(): user = {'username': 'Miguel'} posts = [ { 'author': {'username': 'John'}, 'body': 'Beautiful day in Portland!' }, { 'author': {'username': 'Susan'}, 'body': 'The Avengers movie was so cool!' } ] return render_template('index.html', title='Home', user=user, posts=posts)

 

我使用了一个列表来表示用户动态,其中每个元素是一个具有author和body字段的字典。未来设计用户和其动态时,我将尽可能地保留这些字段名称,以便在使用真实用户和其动态的时候不会出现问题。

在模板方面,我必须解决一个新问题。用户动态列表拥有的元素数量由视图函数决定。那么模板不能对有多少个用户动态进行任何假设,因此需要准备好以通用方式渲染任意数量的用户动态。

Jinja2提供了for控制结构来应对这类问题:

                              {% if title %} {{ title }} - Microblog {% else %} Welcome to Microblog {% endif %} Hi, {{ user.username }}! {% for post in posts %} {{ post.author.username }} says: {{ post.body }} {% endfor %}

 



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有